package com.sc.nft.admin.request;

import com.sc.nft.enums.CollectionLevel;
import com.sc.nft.enums.DigitalMarketTypeEnum;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@Data
public class AddDigitalCollectionRequest {

    @ApiModelProperty("稀有度")
    private CollectionLevel level;

    @ApiModelProperty("等级")
    @NotNull(message = "等级不能为空")
    private Integer showLevel;

    @ApiModelProperty("一级标题")
    @NotBlank(message = "一级标题不能为空")
    private String firstTitle;

    @ApiModelProperty("缩略图")
    @NotNull(message = "缩略图不能为空")
    private String creationContent;

    @ApiModelProperty("商品介绍")
    @NotNull(message = "商品介绍不能为空")
    private String productPresentation;

    @ApiModelProperty("特权介绍")
    private String privilegePresentation;

    @ApiModelProperty("详情页图类型 1 图片 2:动图 3:3d模型")
    @NotNull(message = "详情页图类型不能为空")
    private Integer productDetailPictureType;

    @ApiModelProperty("详情页图")
    @NotNull(message = "详情页图不能为空")
    private String productDetailPicture;

    @ApiModelProperty("系列id")
    @NotNull(message = "系列不能为空")
    private Long catenaId;

    @ApiModelProperty("创作者")
    @NotNull(message = "创作者id不能为空")
    private Long userCreatorId;

    @ApiModelProperty("是否是可合成藏品")
    @NotNull(message = "请设置是否是可合成藏品")
    private Boolean isSynthesis;

    @ApiModelProperty("是否是特权藏品")
    // 2023-10-17 产品反馈,特权藏品可以不是必传
//    @NotNull(message = "请设置是否是特权藏品")
    private Boolean isPrivilege;

    @ApiModelProperty("特权藏品等级")
    private Integer privilegeLevel;

    @ApiModelProperty("是否可以转增 false:不可以 true:可以")
    @NotNull(message = "是否可以转赠不能为空")
    private Boolean isGive;

    @ApiModelProperty("藏品总库存")
    @Range(min = 1, message = "藏品总库存数量不正确")
    @NotNull(message = "藏品总库存不能为空")
    private Integer sumCount;

    @ApiModelProperty("锁仓天数")
    // 锁仓天数在V4.9.0需求中 藏品表中的字段废弃,迁移至商品表中 需求开始时间2023-12-12日,所有的锁仓天数都是0不在使用.
    private Integer lockupDays;

    @ApiModelProperty("3d模型id")
    private String threeModelId;

    @ApiModelProperty("流通数量")
    @Range(min = 0, message = "流通数量不正确")
    @NotNull(message = "流通数量不能为空")
    private Integer circulationNum;

    @ApiModelProperty("防囤数量")
    @NotNull(message = "防囤数量不能为空")
    private Integer antiHoardCount;

    @ApiModelProperty("防囤收益比例")
    @NotNull(message = "防囤收益不能为空")
    private BigDecimal antiHoardRatio;
    @ApiModelProperty("发行价")
    @NotNull(message = "发行价不能为空")
    private BigDecimal issuePrice;

    @ApiModelProperty("3D模型贴图")
    private String modelImg;
    @ApiModelProperty("3D模型距离")
    private String modelDistance;
    @ApiModelProperty("跳转详情")
    private String skipUrl;
    @ApiModelProperty("藏品分类: 1:衍生藏品 2:版权藏品 3:生态孵化")
    @NotNull(message = "藏品分类不能为空")
    private DigitalMarketTypeEnum collectionType;

    @ApiModelProperty("藏品属性")
    @NotEmpty( message = "藏品属性不能为空")
    private List<Long> collectionSearch;

}
